package com.mdc.mansion.dataaccess.modules.order.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.mdc.mansion.dataaccess.common.persistence.CrudDao;
import com.mdc.mansion.dataaccess.common.persistence.annotation.MyBatisDao;
import com.mdc.mansion.dataaccess.modules.basedata.entity.RestaurantOrderDTO;
import com.mdc.mansion.dataaccess.modules.order.entity.RestaurantOrder;
import com.mdc.mansion.dataaccess.modules.restaurant.vo.RestaurantTableVo;

/**
 * 餐厅订单信息dao接口
 * @author mingdongc
 * @version 2018-01-01
 */
@MyBatisDao
public interface RestaurantOrderDao extends CrudDao<RestaurantOrder>{

	List<Map<String, Object>> queryHistory(Map<String,Object> parameterMap);

	List<RestaurantOrder> findOrderDayList(Map<String, Object> parameterMap);

	List<RestaurantTableVo> getOrderStatusList(@Param("restaurantId")String restaurantId, @Param("queryDate")String queryDate, @Param("pageSize")int pageSize, @Param("start")int start);

    RestaurantOrder findNotCheckOrderByTableId(@Param("tableId")String tableId,@Param("DEL_FLAG_NORMAL") String restaurantSave);
    
	List<Map<String, Object>>getTotalAmountList(Map<String, Object> parameterMap);
	
	List<Map<String, Object>>getCategoryAmountList(Map<String, Object> parameterMap);
	
	List<Map<String, Object>>getDishesAmountList(Map<String, Object> parameterMap);
	
	List<Map<String, Object>>getWaitersTotalMoney(Map<String, Object> parameterMap);
	
	List<Map<String, Object>>getCashierTotalMoney(Map<String, Object> parameterMap);
	
	List<Map<String, Object>>getCancelDishesTotalMoney(Map<String, Object> parameterMap);
	
	List<Map<String, Object>>getCancelOrderTotalMoney(Map<String, Object> parameterMap);

	List<Map<String, Object>> getTotalAmountListByMonth(Map<String, Object> parameterMap);

	List<Map<String, Object>> getTotalAmountListByYear(Map<String, Object> parameterMap);

	List<RestaurantOrderDTO> findrestaurantCount(RestaurantOrderDTO restaurantOrderDTO);

	List<RestaurantOrderDTO> findStaffCount(RestaurantOrderDTO restaurantOrderDTO);

	List<RestaurantOrderDTO> findOrderCount(RestaurantOrderDTO restaurantOrderDTO);

	List<RestaurantOrderDTO> getTotalAmountListByOne(RestaurantOrderDTO restaurantOrderDTO);

	List<RestaurantOrderDTO> getCategoryAmountListByOne(RestaurantOrderDTO restaurantOrderDTO);

	List<RestaurantOrderDTO> getDishesAmountListByOne(RestaurantOrderDTO restaurantOrderDTO);
	
	List<Map<String,Object>> getTotalAmountListByAllYear(Map<String,Object> parameterMap);
}
